package com.hsq.db137.demos.controller;

/**
 * @Author: hsq加油
 * @CreateTime: 2024/12/24-11:52
 * @Description: TODO
 * @Version: 1.0
 */

import com.hsq.db137.demos.config.JwtUtils;
import com.hsq.db137.demos.config.R;
import com.hsq.db137.demos.entity.Menuinfo;
import com.hsq.db137.demos.entity.Userinfo;
import com.hsq.db137.demos.seriver.MenuinfoService;
import com.hsq.db137.demos.seriver.UserinfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin(origins = "*")
public class UserInforController {
    @Autowired
    private UserinfoService userinfoService;
    @Autowired
    MenuinfoService menuinfoService;

    /**
     * 根据用户ID删除
     * @param id 用户ID
     * @return 提示语句
     */
    @GetMapping("deleteUser")
    public String deleteUser(int id) {
        return userinfoService.deleteUser(id);
    }

    /**
     * 根据用户ID进行修改
     * @param userinfo 用户类
     * @return 提示语句
     */
   @PostMapping("updateUser")
    public String updateUser(@RequestBody Userinfo userinfo) {
        return userinfoService.updateUser(userinfo);
    }


    /**
     * 查询所有用户
     * @return 集合
     */
    @GetMapping("selectAllUser")
    R selectAllUser(String username){
        List<Userinfo> userinfos = userinfoService.selectAllUser(username);
        return new R().add("userinfos",userinfos);
    }


    /**
     * 根据登录用户返回用户的菜单结婚数据
     * @return
     */
    @GetMapping("selectusermen")
    public R selectusermen( @RequestHeader("token") String token) {
        System.out.println("token = " + token);
        int  uid=0;
        if (!token.equals("null")){
           uid = JwtUtils.getJwtToken(token, "uid");
            System.out.println("uid = " + uid);
        }

        List<Menuinfo> menuinfos = menuinfoService.selectList(uid);
        Userinfo userinfo= userinfoService.selectByUserid(uid);
        return new R().add("menuinfos", menuinfos).add("userinfo",userinfo);
    }

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return 用户类
     */
    @GetMapping("login")
    public R select(String username, String password){
     return  userinfoService.select(username, password);
    }

    /**
     * 注册
     * @param userinfo 用户类
     * @return 提示语句
     */
    @PostMapping("insertUsert")
    public String insertUsert(@RequestBody Userinfo userinfo){
        return userinfoService.insertUsert(userinfo);
    }

    /**
     * 查询用户id的最大值
     * @return 最大值
     */
    @GetMapping ("selectMax")
    public int selectMax(){
        int i = userinfoService.selectMax() + 1;
        System.out.println("i = " + i);
        return i ;
    }

    /**
     * 判断用户注册时输入的手机号是否重复
     * @param phone 手机号
     * @return
     */
    @GetMapping("selectPhone")
    public boolean selectPhone(String phone){
        return userinfoService.selectPhone(phone);
    }

    /**
     * 判断用户注册时输入的用户名是否重复
     * @param name 用户名
     * @return
     */
    @GetMapping("selectName")
    public boolean selectName(String name){
        return userinfoService.selectName(name);
    }
}
